package com.shiroha.video.service;

import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.shiroha.video.pojo.Comment;
import com.shiroha.video.pojo.dto.CommentDTO;
import com.shiroha.video.pojo.vo.CommentVO;

import java.util.UUID;

public interface ICommentService extends IService<Comment> {

    /**
     * 分页查询作品评论
     * @param userId 用户ID
     * @param workId 作品ID
     * @param pageNum 页数
     * @param pageSize 页面大小
     * @return 分页结果
     */
    Page<CommentVO> selectCommentByPage(UUID userId, Long workId, int pageNum, int pageSize);

    /**
     * 发布或回复评论
     * @param userId 评论者ID
     * @param commentDTO DTO对象
     * @return 发布或回复是否成功
     */
    boolean publishComment(UUID userId, CommentDTO commentDTO);

    /**
     * 删除评论
     * @param userId 请求者ID
     * @param commentId 评论ID
     */
    boolean deleteComment(UUID userId, Long commentId);

    /**
     * 置顶评论
     * @param userId 请求者ID
     * @param commentId 评论ID
     * @return 置顶是否成功
     */
    boolean pinComment(UUID userId, Long commentId);
}
